﻿namespace Arms.Application.Modules.Orders
{
    using Arms.Application.Modules.Orders.DTOs;
    using Arms.Application.Services;
    using System;

    public interface IOrderService : IServiceBase
    {
        int CreateOrderHeader(DateTime orderDate, int? customerID, int? diningRoomTableID);

        int AddOrderToOrderHeader(DateTime orderDate, int orderHeaderID, DateTime? deliveryDate, DateTime? pickupDate);
        void RemoveOrderFromOrderHeader(int orderHeaderID, int orderID);
        void VoidOrderHeader(int orderHeaderID);
        void InvoiceOrderHeader(int orderHeaderID);

        void AddProductsToOrder(int orderID, params ProductsInOrderDTO[] productsInOrders);
        void RemoveProductsFromOrder(int orderID, params ProductsInOrderDTO[] productsInOrders);
        void VoidOrder(int orderID);
        void InvoiceOrder(int orderID);
    }
}
